"""author: wenyao
   data: 2021/12/13
   project: cjh
"""
#

#区别： 继承了python内置类的时候，才是新式类。其他的都是经典类
#  经典类  通过type查看到的实例类型都叫做instance
#         类和实例之间只能够通过__class__属性进行关联
#  新式类  通过type查看到的实例类型就是类名
# >>> class A:pass
# ...
# >>> a = A()
# >>> type(a)
# <type 'instance'>
# >>> a.__class__
# <class __main__.A at 0x7fd82a41dec0>
# >>>
# ────────────────────────────────────────────────────────────────────────────────────────────────────────
# >>> class A:pass
# ...
# >>> a = A()
# >>> type(a)
# <class '__main__.A'>
# >>> a.__class__
# <class '__main__.A'>

#多重继承顺序的区别
#经典类：  深度优先
#新式类：  c3算法

class A:
    def test(self):
        print("from A")
class B(A):
    def test(self):
        print("from B")
class C(A):
    def test(self):
        print("from C")
class D(B):
    def test(self):
        print("from D")
class E(C):
    def test(self):
        print("from E")
class F(D,E):
    def test(self):
        print("from F")
f = F()
f.test()
#经典类： F --> D --> B -->A -->E -->C
#新式类:  F --> D --> B -->E -->C -->A

#c3算法
#  首先将自身类加入到本序列，然后对继承序列的元素依次判断
#  若某元素不在其他序列或者它是所有继承序列的第一个，那么就把这个元素提取到本序列